<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 分配给商店的最多商品的最小值 -->
    <script>
      var minimizedMaximum = (n, quantities) => {
        let len = quantities.length
        // 检验每间店铺装num个，n个店铺是否装得下的函数
        let check = num => {
          let count = 0
          // 统计每间店铺装num个，装完所有商品，需要多少间店铺
          for (let i = 0; i < len; i++) {
            // 当前种类的商品，需要多少间店铺
            count += Math.ceil(quantities[i] / num)
          }
          // 若店铺总数小于给定的n，则表示每间店铺装num个是可以装得下的
          return count <= n
        }
        // 每间店铺装的最大数量不可能取到0，最小为1
        // 每间店铺装的最大数量最大是数量最多的商品种类的数量
        let [left, right] = [1, Math.max(...quantities)]
        while (left <= right) {
          // 每间店铺装mid个
          let mid = (left + right) >> 1
          if (check(mid)) {
            // 装得下，减小每间店铺装的数量
            right = mid - 1
          } else {
            // 装不下，增加每间店铺装的数量
            left = mid + 1
          }
        }
        return left
      }
      console.log(minimizedMaximum(6, [11, 6]))
    </script>
  </body>
</html>
